約 5,570,538 件
https://w.atwiki.jp/nadebook/pages/91.html
【オブジェクト】メンバ変数 部品のオブジェクトポインタを表します。すべての部品に対してプログラム内における一意の値が付けられています。プログラムが違えば、同じ値になることもあり得ます。 部品に関する様々な値を設定したり取得したりするためには、対象となる部品を特定する必要があります。オブジェクトはそれらの情報がどこにあるのかを記録し、「なでしこ」がシステム内部で利用しているものです。 主にWindowsシステム側で利用される値ですので、通常はユーザー側が意識する必要はありません。 プログラムごとに部品のオブジェクトポインタが付けられる。 値の設定 部品にオブジェクトを設定する。 (部品名)のオブジェクトは123。 ※システム側で自動的に値が設定されるので、ユーザーが任意に設定すべきではありません。 値の取得 部品のオブジェクトを取得する。 Oは(部品名)のオブジェクト。 設定/取得できる値 数値 ***** サンプル ***** ボタンAとはボタン。 「ボタンAの情報」を表示。 「ID={ボタンAのID}」を表示。 「ハンドル={ボタンAのハンドル}」を表示。 「オブジェクト={ボタンAのオブジェクト}」を表示。 「種類={ボタンAの種類}」を表示。 ***** ここまで *****
https://w.atwiki.jp/bogard/pages/44.html
グダグダ言っていてもしょうがないので、まじめにオブジェクト指向なお話。 オブジェクト指向の使いどころと学び方について。 オブジェクト指向とは、従来の構造化言語(C言語など)と異なって、「オブジェクト」という単位で考えよう、ということだ。 なんて簡単に済ませてしまうと怒られそう。。 でも、オブジェクト指向の話なんて、本屋に言ったらいっぱいあるから、あえてここで私が述べる必要のあることってあまりない。ほんとに。 ただ、「オブジェクト指向」というパラダイムと「オブジェクト指向言語」と「UML」は、区別したほうがいいと思う。どうも、ごっちゃになっている(あるいは故意にごっちゃにしている)本が多いような。。 前にも書いたけど、C言語でだってアセンブラでだってオブジェクト指向なプログラミングはできる。 JavaやC++は、オブジェクト指向でプログラミング「しやすい」言語でしかない。 結局のところ「オブジェクト指向」というのはプログラミングの際の考え方の一つに過ぎない。 犬小屋をつくるのと、ビルを建てるのとでは設計から施工までの工程と方法論が違うのと、それは似ている 犬小屋をつくるときはその処理の全てを見通すことができるし、屋根から作っても壁から作ってもかまわない。 ビルを建てる時には、犬小屋を作るときみたいに細かい材料の寸法や材質も重要だけど、それらをあるていどひとまとめにして抽象的に捉える必要がある。まず全体の構成やコンセプトを決めて、その後で細かい部分の検討に入る。 そういう風な方法論の違いが、「構造化プログラミング」と「オブジェクト指向プログラミング」なのである。どっちがいい悪いというものではないと思う。 てなわけで、方法論そのものが違うのでオブジェクト指向プログラミングはやっかい。学習する際にはC言語などの手続き型言語とは一線を画して考える必要がある。 その意味で、C++という言語は罪作りな言語だと思う。C言語を使っていた人が移行しやすいのは確かなんだけど、そのままC言語の書き方でもプログラムを作れてしまう。 これだとプログラムの「考え方」「作り方」の移行が難しい。従来どおりの手続き型の記述を廃したJavaやC#のほうが、素直にオブジェクト指向の考え方に入っていけるとはおもう。 だけど、上のほうで書いたとおり、作るプログラムによってオブジェクト指向を使ったほうがいい場合とそうでない場合がある。 その意味では、その時々でどちらの書き方もできるC++という言語は、案外優れているのかもしれない。
https://w.atwiki.jp/ca07/pages/23.html
オブジェクト指向の勉強 変数のライフタイム new演算子 スタック 抽象データ型 クラス型の記述 メンバ 情報隠蔽とカプセル化 コンストラクタ メモリ領域 継承 クラスライブラリ
https://w.atwiki.jp/k_tech/pages/32.html
java オブジェクトの生成 クラスとは、オブジェクトを生成するための雛型で、オブジェクトの状態を保持するフィールドとその状態に応じて何ならかの処理を行うメソッドを定義する。 public class SomeClass { public SomeClass() // new演算子により呼び出されるコンストラクタ { ・・・・ } } クラスはclassキーワードにより定義する。 classキーワードの前に、publicというアクセス修飾子を付けると、クラスの種類(アクセスのスコープ)を指定する事ができる。 ・public すべてのクラスからアクセス可能 ・無指定 同じパッケージ内からのみアクセス可能 オブジェクトを生成するには、クラス型の変数を宣言する。 続いて、new演算子を使ってオブジェクトを生成する。 new演算子はオブジェクトに必要な領域を確保し、クラスのコンストラクタを呼び出す。 クラス型の変数は配列型の変数と同様に参照型。 SomeClass obj; obj = new SomeClass(); // オブジェクトの生成 SomeClass obj = new SomeClass(); オブジェクトの生成方法を示すprogram public class ClassTest { public static void main(String[] args) { SomeClass obj, other; obj = new SomeClass(); other = new SomeClass(); if(obj.equals(other)) System.out.println("代入前-------- 同じobjectを参照"); obj = other; if(obj.equals(other)) System.out.println("代入後-------- 同じobjectを参照"); } } class SomeClass { static int counter = 0; public SomeClass() { counter++; System.out.println(counter + "回目"); } } ※二つのオブジェクトが等しいかどうかを判定するのには、必ずequal()メソッドを使う。 equal()はObjectクラスのメソッドであり、すべてのクラスはObjectを継承するため、anObject.equal(otherObject)という呼び出しが可能。 この場合、anObjectとotherObjectが等しければ、equal()メソッドはtrueを返却する。
https://w.atwiki.jp/setechdiv/pages/33.html
プロパティ アンカー 各オブジェクトのプロパティにある「アンカー」項目。 これは、フォームサイズの変更に際しオブジェクトを連動させるかどうか、その方法を決定する。
https://w.atwiki.jp/anime_wiki/pages/19573.html
■ヘヴィーオブジェクト モデラー ■関連タイトル へヴィーオブジェクトBlu-ray BOX
https://w.atwiki.jp/hideaki0121/pages/135.html
java.util.Comparableインタフェース Comparableインタフェースを実装することで、オブジェクトの比較条件が指定できる。 オブジェクトの大小はcompareToメソッドの戻り値で決まる。 http //www.moriwaki.net/wiki/index.php?%5B%5B%A5%AA%A5%D6%A5%B8%A5%A7%A5%AF%A5%C8%C7%DB%CE%F3%A4%CE%A5%BD%A1%BC%A5%C8%5D%5D
https://w.atwiki.jp/dustgame2/pages/69.html
オブジェクトについて オブジェクトについてオブジェクトの特徴 オブジェクトの種類 オブジェクトの特徴 オブジェクトは、ERASEで消すことができる。 CLEARでは消えない。 BLOCK、BH、WH以外のオブジェクトは、出せる数に制限がある。 PLAYERのみでは2個、FIGHTERのみでは50個、BALLのみでは50個であり、 複数の種類のオブジェクトを出す場合は、PLAYER、FIGHTER、BALLを全て合計して50個までである。 BLOCK、BH、WHは、PEN-S 0で使っても、実際に出るのはPEN-S 1のサイズのものである。 オブジェクトの種類 オブジェクトは、2013年3月23日現在のところ、6種類ある。 それぞれのオブジェクトについては、それぞれの項目を参照してください。
https://w.atwiki.jp/memomem/pages/18.html
1.機能分解 2.オブジェクト指向の誤解 3.ソフトウェア開発プロセスの観点 4.オブジェクト指向パラダイム 5.オブジェクト指向技術 6.オブジェクト指向用語 オブジェクト指向
https://w.atwiki.jp/r-intro/pages/51.html
目次 目次 変数(ベクトル)を使用する 代入した結果を表示する 保存されているオブジェクトを確認する オブジェクトのモードを調べる オブジェクトのクラスを調べる オブジェクトを削除する ベクトルやデータフレームをファイルに保存して、後で読み込んで再利用する TRUE,FALSEとT,F 変数(ベクトル)を使用する プログラミング言語やスクリプト言語における変数とは、いろいろな計算や処理のために数値や文字などを一時的に格納しておくためのもの。変数には任意の名前を付けることができる。作成できる変数の数に制限はなく、必要な種類の変数を必要なだけ作成することができる。 C++やJavaなどのプログラミング言語と異なり、Rでは変数を作成するための変数の宣言はしなくてもよい(してもよい)。変数に値を代入することが宣言を兼ねている。なお、Rには変数というものは存在せず、変数に相当するものはベクトル(厳密にはオブジェクト)という。代入には代入演算子 -を使う。=も使うことができるが、推奨しない。 n エラー オブジェクト n がありません s エラー オブジェクト s がありません n - 58 s - "メイショウドトウ役の和多田美咲さんかわいい" n [1] 58 s [1] "メイショウドトウ役の和多田美咲さんかわいい" 代入した結果を表示する コマンドラインでベクトルなどに値を代入すると、画面には何も表示されないが、この代入を()(括弧)で囲むと、代入した結果を表示するようになる。デバッグ時などに利用すると便利。 s1 - "鈴木みのり" print(s1) [1] "鈴木みのり" (s2 - "和多田美咲") [1] "和多田美咲" print(s2) [1] "和多田美咲" 保存されているオブジェクトを確認する Rはオブジェクト(値を代入したベクトルやリスト、定義した関数など)は、明示的に削除しない限りそのままその環境に残る。再利用することができるし、逆に誤って使用してしまうこともある。その環境下に残されているオブジェクトを確認するには、objects関数かls関数を使う。 Rを起動した直後に実行すると、以下のようになるはず。 objects() character(0) objects関数(ls関数も同様、以下同じ)は環境下に残されているオブジェクトのオブジェクト名を文字列型ベクトルで返す。起動直後は何もオブジェクトが無い(実はあるがそれは後述)ため、長さが0の文字列型ベクトルが返される。 n - 1 3 s - c("ABC", "abc", "123") objects() [1] "n" "s" ls() [1] "n" "s" all.namesオプションにTRUEを与えると、隠しオブジェクト(オブジェクト名が「.」から始まる)も含めてすべて表示する。 d - rnorm(4) ls() [1] "d" "n" "s" ls(all.names = TRUE) [1] ".Random.seed" "d" "n" "s" オブジェクトのモードを調べる Rでは、各オブジェクトのメモリへの格納形式をモードという。通常コマンド操作をする際に意識することはないが、基礎知識として知っておくと有益。ベクトルのように各要素はすべて同じモードでなければならないものもあれば、リストのように異なるモードを持つものを格納できるオブジェクトもある。 n - 1 2 s - c("石見舞菜香", "ライスシャワー") b - c(TRUE, FALSE) dt - as.Date("2000-01-01") dtf - data.frame(n, s) f - function(x) {x ^ 2} mode(n) [1] "numeric" mode(s) [1] "character" mode(b) [1] "logical" mode(dt) [1] "numeric" mode(dtf) [1] "list" mode(f) [1] "function" 一部のモードは、typeof関数を使うともう少し詳しい情報を得ることができる。 typeof(n) [1] "integer" typeof(3.14) [1] "double" typeof(dt) [1] "double" オブジェクトのクラスを調べる Rでは、各オブジェクトのメモリへの格納方式をモードといい、これらにはさらにその格納された情報の型を持っており、その型をクラスという。通常コマンド操作をする際に意識することはないが、基礎知識として知っておくと有益。 n - 1 2 s - c("石見舞菜香", "ライスシャワー") b - c(TRUE, FALSE) dt - as.Date("2000-01-01") dtf - data.frame(n, s) f - function(x) {x ^ 2} class(n) [1] "integer" class(s) [1] "character" class(b) [1] "logical" class(dt) [1] "Date" class(dtf) [1] "data.frame" class(f) [1] "function" オブジェクトを削除する Rは代入したベクトルやリスト、定義した関数などは、明示的に削除しない限りそのままその環境に残る。再利用することができるし、逆に誤って使用してしまうこともある。その環境下に残されているオブジェクトを削除するには、rm関数を使う。 ls() character(0) n - 1 3 s - c("ABC", "abc", "123") ls() [1] "n" "s" print(s) [1] "ABC" "abc" "123" rm(s) ls() [1] "n" print(s) エラー オブジェクト s がありません すべてのオブジェクトを削除したい倍は、listオプションにls関数の結果を与える。 n - 1 3 s - c("ABC", "abc", "123") ls() [1] "n" "s" rm(list = ls()) ls() character(0) ただし、これでは隠しオブジェクト(オブジェクト名が「.」から始まる)は削除されない。隠しオブジェクトも含めてすべて削除するには、ls関数のall.namesオプションにTRUEを与える。 n - 1 3 s - c("ABC", "abc", "123") d - rnorm(4) ls() [1] "d" "n" "s" ls(all.names = TRUE) [1] ".Random.seed" "d" "n" "s" rm(list = ls()) ls() character(0) ls(all.names = TRUE) [1] ".Random.seed" やり直す。 n - 1 3 d - rnorm(4) ls(all.names = TRUE) [1] ".Random.seed" "d" "n" rm(list = ls(all.names = TRUE)) ls(all.names = TRUE) character(0) ベクトルやデータフレームをファイルに保存して、後で読み込んで再利用する readrパッケージのwrite_rds関数を使うことで、オブジェクト(ベクトルやデータフレームなど)をファイルに保存することができる。このファイルに保存した内容は、後(Rの再起動後も可)でread_rds関数を使ってその環境に読み込み再利用することができる。save関数と異なり、一つのオブジェクトしか保存することができず、readRDS関数で読み込む際は、その読み込み先のオブジェクトを指定する必要がある。 rm(list = ls(all.names = TRUE)) ls() character(0) no - 1 3 name - c("安野希世乃", "岩見舞菜香", "和多田美咲") meibo - data.frame(no, name) print(meibo) no name 1 1 安野希世乃 2 2 岩見舞菜香 3 3 和多田美咲 readr write_rds(meibo, file = "meibo.rds") rm(list = ls(all.names = TRUE)) ls() character(0) readr read_rds(file = "meibo.rds") no name 1 1 安野希世乃 2 2 岩見舞菜香 3 3 和多田美咲 ls() character(0) dtf - readr read_rds(file = "meibo.rds") ls() [1] "dtf" print(dtf) no name 1 1 安野希世乃 2 2 岩見舞菜香 3 3 和多田美咲 write_rds関数はsave関数やsaveRDS関数と異なり、デフォルトではファイルを圧縮処理しない。そのため、ファイルサイズは大きくなるが、その分、保存時も読み込み時も動作が早い。なお、ファイルを圧縮処理するように指定することもできる。 以下ではwrite_rds関数とread_rds関数について、適当な巨大なデータフレームを作成して、ファイルの圧縮処理するか否かで、保存・読み込み時の実行時間を比較した例。見てのとおり、圧縮処理するとファイルサイズは約半分になるが、保存時は10倍以上時間がかかることがわかる。読み込み時も、保存時ほどではないが処理が早く済むことがわかる。。 rm(list = ls(all.names = TRUE)) len - 20 ch - c(LETTERS, letters) n - 10 ^ 6 sei - mei - character(n) for (i in 1 n) sei[i] - paste(ch[floor(runif(len, 1, length(ch) + 1))], collapse = "") for (i in 1 n) mei[i] - paste(ch[floor(runif(len, 1, length(ch) + 1))], collapse = "") no - 1 (n * 10) age - floor(runif(n * 10, 20, 66)) meibo - data.frame(no, sei, mei, age) nrow(meibo) [1] 10000000 tail(meibo) no sei mei age 9999995 9999995 hidOwZgfbrLerBCHprrj rEXTnzTjfnRHoaAYFQLk 53 9999996 9999996 KJPkdfMRQmoAsxvNXzYx DBwannCmxuEdYyfnaYTC 58 9999997 9999997 ODqATMYtqIvEzcvzfZmd QpBDgfnOUeWAkmWfzjcI 25 9999998 9999998 JsnBlbiwMdyRzGzYlOPA nJBFwQMStWHPdwEFgKMe 32 9999999 9999999 fvQMCLOULLReHDuJSrbs pSwrJDxXPYvJMeECpeoJ 33 10000000 10000000 kVmjgBweXtfoFzROlivD RaHBkUfyvlkMBeEgbTYa 36 system.time(readr write_rds(meibo, file = "meibo_none.rds")) ユーザ システム 経過 1.15 0.47 2.49 system.time(readr write_rds(meibo, file = "meibo_none.rds")) ユーザ システム 経過 1.06 0.27 3.32 system.time(readr write_rds(meibo, file = "meibo_gz.rds", compress = "gz")) ユーザ システム 経過 18.08 0.16 21.34 system.time(readr write_rds(meibo, file = "meibo_gz.rds", compress = "gz")) ユーザ システム 経過 14.11 0.23 21.75 rm(list = ls(all.names = TRUE)) ls() character(0) file.info(dir(pattern = "*.rds"))["size"] size meibo_gz.rds 354125588 meibo_none.rds 680000218 system.time(dtf - readr read_rds(file = "meibo_none.rds")) ユーザ システム 経過 2.97 0.14 3.58 system.time(dtf - readr read_rds(file = "meibo_none.rds")) ユーザ システム 経過 3.48 0.32 5.09 system.time(dtf - readr read_rds(file = "meibo_gz.rds")) ユーザ システム 経過 5.98 0.03 6.72 system.time(dtf - readr read_rds(file = "meibo_gz.rds")) ユーザ システム 経過 5.92 0.07 6.74 TRUE,FALSEとT,F TRUEとFALSEは、論理型データの定数であり予約語。一方、TとFは初期状態で定義されている論理型データの長さ1のベクトル。 TRUEとFALSEは変更することができない定数で、TとFは初期状態で存在するベクトルに過ぎないため、変更することは可能。そのため、論理式で使用するときは、TRUEとFALSEの使用を推奨する。 TRUE; FALSE; T; F [1] TRUE [1] FALSE [1] TRUE [1] FALSE class(TRUE) [1] "logical" class(T) [1] "logical" mode(TRUE) [1] "logical" mode(F) [1] "logical" TRUE - 1 TRUE - 1 でエラー 代入の左辺が不正 (do_set) です T - 1 TRUE; FALSE; T; F [1] TRUE [1] FALSE [1] 1 [1] FALSE class(T) [1] "numeric"